uint16_t port,
uint16_t pool);
-
-
void siridb_server_connect(siridb_t * siridb, siridb_server_t * server);
int siridb_server_send_pkg(
siridb_server_t * server,
return CPROTO_ERR_AUTH_CREDENTIALS;
}
- client->siridb = siridb;
- client->origin = user;
+ siridb_incref(siridb);
+ if (client->siridb)
+ {
+ siridb_decref(client->siridb);
+ }
siridb_user_incref(user);
+ if (client->origin)
+ {
+ siridb_user_decref(((siridb_user_t *) client->origin));
+ }
+
+ client->siridb = siridb;
+ client->origin = user;
return CPROTO_RES_AUTH_SUCCESS;
}
return BPROTO_AUTH_ERR_UNKNOWN_UUID;
}
+ siridb_incref(siridb);
+ if (client->siridb)
+ {
+ siridb_decref(client->siridb);
+ }
+
client->siridb = siridb;
client->origin = server;
struct in6_addr sa6;
server->client->origin = server;
server->client->siridb = siridb;
+ siridb_incref(siridb);
siridb_server_incref(server);
uv_tcp_init(siri.loop, (uv_tcp_t *) server->client->stream);
case STREAM_TCP_MANAGE: /* a server manage connection */
siri_service_client_free((siri_service_client_t *) client->origin);
siri.client = NULL;
+ assert (client->siridb == NULL);
break;
}
+ if (client->siridb)
+ {
+ siridb_decref(client->siridb);
+ }
free(client->buf);
free(client);
free(uvclient);